package com.example.academic_affairs_system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.academic_affairs_system.model.entity.AasClassCourses;
import com.example.academic_affairs_system.model.vo.clazz.ClassInfoVO;
import com.example.academic_affairs_system.model.vo.courses.CoursesVO;

import java.util.List;

/**
 * 服务类
 *
 * @author hjx
 * @since 2023-01-31
 */
public interface IAasClassCoursesService extends IService<AasClassCourses> {
  /**
   * 追加关联
   *
   * <p>课程与班级绑定之后，该班级的所有学生加入该课程
   *
   * @param classId 班级 id
   * @param coursesId 课程 id
   * @return {@link Integer} 是否追加成功
   */
  int addRelated(long classId, long coursesId);
  /**
   * 判断是否已经绑定课程
   *
   * @param classId 班级 id
   * @param coursesId 课程 id
   * @return {@link Boolean} 如果返回 true，说明已经被绑定
   */
  boolean reRelated(long classId, long coursesId);
  /**
   * 根据班级 id 获取课程视图对象列表
   *
   * @param classId 班级 id
   * @return 视图对象列表
   */
  List<CoursesVO> getClassCoursesVOList(long classId);

  /**
   * 根据课程获取班级信息
   *
   * @param coursesId 课程 id
   * @return {@link List} 课程列表
   */
  List<ClassInfoVO> getClassInfoByCoursesId(long coursesId);
}
